A group of business terms providing information about allowances applicable to the Invoice as a whole.
請求書レベルの返金に関する情報を提供するビジネス用語のグループ。


About

Syntax binding
ubl:Invoice / cac:AllowanceCharge
Selector
cbc:ChargeIndicator = false()
Restricted Syntax Cardinality
0..n
UBL 2.1
XPath
/ Invoice / cac:AllowanceCharge [ cbc:ChargeIndicator = false() ]
Occurrence
0..n
Datatype
cac:AllowanceChargeType
UBL Definition
A discount or charge that applies to a price component.
Namespace
cac urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2

Semantic

Business Term

DOCUMENT LEVEL ALLOWANCES

請求書レベルの返金
ID
ibg-20
Description
A group of business terms providing information about allowances applicable to the Invoice as a whole.
請求書レベルの返金に関する情報を提供するビジネス用語のグループ。
Aligned Cardinality
0..n

Child elements

  ID Business term Sem. Card. Syntax Card. XPath
  1..1 / Invoice / cac:AllowanceCharge [ cbc:ChargeIndicator = false() ] / cbc:ChargeIndicator
 ibt-098 0..1 0..1 / Invoice / cac:AllowanceCharge [ cbc:ChargeIndicator = false() ] / cbc:AllowanceChargeReasonCode
 ibt-097 0..1 0..1 / Invoice / cac:AllowanceCharge [ cbc:ChargeIndicator = false() ] / cbc:AllowanceChargeReason
 ibt-094 0..1 0..1 / Invoice / cac:AllowanceCharge [ cbc:ChargeIndicator = false() ] / cbc:MultiplierFactorNumeric
 ibt-092 1..1 1..1 / Invoice / cac:AllowanceCharge [ cbc:ChargeIndicator = false() ] / cbc:Amount
  1..1 1..1 / Invoice / cac:AllowanceCharge [ cbc:ChargeIndicator = false() ] / cbc:Amount / @currencyID
 ibt-093 0..1 0..1 / Invoice / cac:AllowanceCharge [ cbc:ChargeIndicator = false() ] / cbc:BaseAmount
  1..1 1..1 / Invoice / cac:AllowanceCharge [ cbc:ChargeIndicator = false() ] / cbc:BaseAmount / @currencyID
1..1 / Invoice / cac:AllowanceCharge [ cbc:ChargeIndicator = false() ] / cac:TaxCategory
 ibt-095 1..1 1..1 / Invoice / cac:AllowanceCharge [ cbc:ChargeIndicator = false() ] / cac:TaxCategory / cbc:ID
 ibt-096 0..1 0..1 / Invoice / cac:AllowanceCharge [ cbc:ChargeIndicator = false() ] / cac:TaxCategory / cbc:Percent
1..1 / Invoice / cac:AllowanceCharge [ cbc:ChargeIndicator = false() ] / cac:TaxCategory / cac:TaxScheme
 ibt-095-1 1..1 1..1 / Invoice / cac:AllowanceCharge [ cbc:ChargeIndicator = false() ] / cac:TaxCategory / cac:TaxScheme / cbc:ID

VERSION 1.0 RULES

Unchanged
Same as 0.9.3

VERSION 0.9.3 RULES
JP PINT 0.9.3 Aligned rules
aligned-ibrp-032-jp(fatal)
Added
[aligned-ibrp-032jp]-Each Document level allowance (ibg-20) MUST have a Document level allowance tax category code (ibt-095) and Document level allowance tax rate (ibt-096).
context
/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = false()] |
/cn:CreditNote/cac:AllowanceCharge[cbc:ChargeIndicator = false()]
test
exists(cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID) and
exists(cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:Percent)
aligned-ibrp-e-01(fatal)
Changed Message
[aligned-ibrp-e-01]-An Invoice that contains an Invoice line (ibg-25), a Document level allowance (ibg-20) or a Document level charge (ibg-21) where the tax category code (ibt-151, ibt-095 or ibt-102) is "Exempt from tax" MUST contain exactly one tax breakdown (ibg-23) with the tax category code (ibt-118) equal to "Exempt from tax".
context
/ubl:Invoice |
/cn:CreditNote
test
(
  (exists(//cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'E']) or
    exists(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'E'])) and
  (count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'E']) =
    1)) or
(
  not(
    //cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'E']) and
  not(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'E']
  )
)
aligned-ibrp-e-06(fatal)
Changed Message
[aligned-ibrp-e-06]-In a Document level allowance (ibg-20) where the Document level allowance tax category code (ibt-095) is "Exempt from tax", the Document level allowance tax rate (ibt-096) MUST be 0 (zero).
context
cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='E'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
(
  xs:decimal(cbc:Percent) =
  0
)
aligned-ibrp-g-01(fatal)
Changed Message
[aligned-ibrp-g-01]-An Invoice that contains an Invoice line (ibg-25), a Document level allowance (ibg-20) or a Document level charge (ibg-21) where the tax category code (ibt-151, ibt-095 or ibt-102) is "Export" MUST contain in the tax breakdown (ibg-23) exactly one tax category code (ibt-118) equal with "Export".
context
/ubl:Invoice |
/cn:CreditNote
test
(
  (exists(//cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'G']) or
    exists(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'G'])) and
  (count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'G']) =
    1)) or
(
  not(
    //cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'G']) and
  not(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'G']
  )
)
aligned-ibrp-g-06(fatal)
Changed Message
[aligned-ibrp-g-06]-In a Document level allowance (ibg-20) where the Document level allowance tax category code (ibt-095) is "Export" the Document level allowance tax rate (ibt-096) MUST be 0 (zero).
context
cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='G'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
(
  xs:decimal(cbc:Percent) =
  0
)
aligned-ibrp-o-01(fatal)
Changed Message
[aligned-ibrp-o-01]-An Invoice that contains an Invoice line (ibg-25), a Document level allowance (ibg-20) or a Document level charge (ibg-21) where the tax category code (ibt-151, ibt-095 or ibt-102) is "Not subject to tax" MUST contain exactly one tax breakdown group (ibg-23) with the tax category code (ibt-118) equal to "Not subject to tax".
context
/ubl:Invoice |
/cn:CreditNote
test
(
  (exists(//cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'O']) or
    exists(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'O'])) and
  (count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'O']) =
    1)) or
(
  not(
    //cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'O']) and
  not(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'O']
  )
)
aligned-ibrp-o-06(fatal)
Changed Message
[aligned-ibrp-o-06]-A Document level allowance (ibg-20) where tax category code (ibt-095) is "Not subject to tax" MUST not contain a Document level allowance tax rate (ibt-096).
context
cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='O'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
not(cbc:Percent)
JP PINT 0.9.3 Shared rules
ibr-031(fatal)
Unchanged
Same as 0.9.2
ibr-033(fatal)
Unchanged
Same as 0.9.2

VERSION 0.9.2 RULES
JP PINT 0.9.2 Aligned rules
aligned-ibrp-032(fatal)
Obsoleted
[aligned-ibrp-032]-Each Document level allowance (ibg-20) MUST have a Document level allowance tax category code (ibt-095).
context
/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = false()] |
/cn:CreditNote/cac:AllowanceCharge[cbc:ChargeIndicator = false()]
test
exists(cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID)
aligned-ibrp-ae-01(fatal)
Obsoleted
[aligned-ibrp-ae-01]-An Invoice that contains an Invoice line (ibg-25), a Document level allowance (ibg-20) or a Document level charge (ibg-21) where the tax category code (ibt-151, ibt-095 or ibt-102) is "Reverse charge" MUST contain in the tax Breakdown (ibg-23) exactly one tax category code (ibt-118) equal with "Tax reverse charge".
context
/ubl:Invoice |
/cn:CreditNote
test
(
  (exists(//cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'AE']) or
    exists(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'AE'])) and
  (count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'AE']) =
    1)) or
(
  not(
    //cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'AE']) and
  not(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'AE']
  )
)
aligned-ibrp-ae-03(fatal)
Obsoleted
[aligned-ibrp-ae-03]-An Invoice that contains a Document level allowance (ibg-20) where the Document level allowance tax category code (ibt-95) is "Reverse charge" MUST contain the Seller tax Identifier (ibt-31), the Seller tax registration identifier (ibt-32) and/or the Seller tax representative tax identifier (ibt-63) and the Buyer tax identifier (ibt-48) and/or the Buyer legal registration identifier (ibt-47).
context
/ubl:Invoice |
/cn:CreditNote
test
(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID) =
    'AE'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) and
  (exists(//cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID) or
    exists(//cac:TaxRepresentativeParty/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID)) and
  (exists(//cac:AccountingCustomerParty/cac:Party/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID) or
    exists(//cac:AccountingCustomerParty/cac:Party/cac:PartyLegalEntity/cbc:CompanyID))) or
not(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID) =
    'AE'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
  )
)
aligned-ibrp-ae-06(fatal)
Obsoleted
[aligned-ibrp-ae-06]-In a Document level allowance (ibg-20) where the Document level allowance tax category code (ibt-95) is "Reverse charge" the Document level allowance tax rate (ibt-96) MUST be greater than zero.
context
cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='AE'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
(
  xs:decimal(cbc:Percent) =
  0
)
aligned-ibrp-e-01(fatal)
Obsoleted
[aligned-ibrp-e-01]-An Invoice that contains an Invoice line (ibg-25), a Document level allowance (ibg-20) or a Document level charge (ibg-21) where the tax category code (ibt-151, ibt-95 or ibt-102) is "Exempt from tax" MUST contain exactly one tax breakdown (ibg-23) with the tax category code (ibt-118) equal to "Exempt from tax".
context
/ubl:Invoice |
/cn:CreditNote
test
(
  (exists(//cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'E']) or
    exists(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'E'])) and
  (count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'E']) =
    1)) or
(
  not(
    //cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'E']) and
  not(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'E']
  )
)
aligned-ibrp-e-03(fatal)
Obsoleted
[aligned-ibrp-e-03]-An Invoice that contains a Document level allowance (ibg-20) where the Document level allowance tax category code (ibt-95) is "Exempt from tax" MUST contain the Seller tax Identifier (ibt-31), the Seller tax registration identifier (ibt-32) and/or the Seller tax representative tax identifier (ibt-63).
context
/ubl:Invoice |
/cn:CreditNote
test
(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='E'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) and
  (exists(//cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID) or
    exists(//cac:TaxRepresentativeParty/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID))) or
not(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='E'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']))
aligned-ibrp-e-06(fatal)
Obsoleted
[aligned-ibrp-e-06]-In a Document level allowance (ibg-20) where the Document level allowance tax category code (ibt-95) is "Exempt from tax", the Document level allowance tax rate (ibt-96) MUST be 0 (zero).
context
cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='E'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
(
  xs:decimal(cbc:Percent) =
  0
)
aligned-ibrp-g-01(fatal)
Obsoleted
[aligned-ibrp-g-01]-An Invoice that contains an Invoice line (ibg-25), a Document level allowance (ibg-20) or a Document level charge (ibg-21) where the tax category code (ibt-151, ibt-95 or ibt-102) is "Export" MUST contain in the tax breakdown (ibg-23) exactly one tax category code (ibt-118) equal with "Export".
context
/ubl:Invoice |
/cn:CreditNote
test
(
  (exists(//cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'G']) or
    exists(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'G'])) and
  (count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'G']) =
    1)) or
(
  not(
    //cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'G']) and
  not(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'G']
  )
)
aligned-ibrp-g-03(fatal)
Obsoleted
[aligned-ibrp-g-03]-An Invoice that contains a Document level allowance (ibg-20) where the Document level allowance tax category code (ibt-95) is "Export" MUST contain the Seller tax Identifier (ibt-31) or the Seller tax representative tax identifier (ibt-63).
context
/ubl:Invoice |
/cn:CreditNote
test
(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='G']) and
  (exists(//cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID) or
    exists(//cac:TaxRepresentativeParty/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID))) or
not(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='G'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']))
aligned-ibrp-g-06(fatal)
Obsoleted
[aligned-ibrp-g-06]-In a Document level allowance (ibg-20) where the Document level allowance tax category code (ibt-95) is "Export" the Document level allowance tax rate (ibt-96) MUST be 0 (zero).
context
cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='G'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
(
  xs:decimal(cbc:Percent) =
  0
)
aligned-ibrp-ic-01(fatal)
Obsoleted
[aligned-ibrp-ic-01]-An Invoice that contains an Invoice line (ibg-25), a Document level allowance (ibg-20) or a Document level charge (ibg-21) where the tax category code (ibt-151, BT-95 or BT-102) is "Intra-community supply" MUST contain in the tax breakdown (ibg-23) exactly one tax category code (ibt-118) equal with "Intra-community supply".
context
/ubl:Invoice |
/cn:CreditNote
test
(
  (exists(//cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'K']) or
    exists(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'K'])) and
  (count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'K']) =
    1)) or
(
  not(
    //cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'K']) and
  not(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'K']
  )
)
aligned-ibrp-ic-03(fatal)
Obsoleted
[aligned-ibrp-ic-03]-An Invoice that contains a Document level allowance (ibg-20) where the Document level allowance tax category code (ibt-95) is "Intra-community supply" MUST contain the Seller tax Identifier (ibt-31) or the Seller tax representative tax identifier (ibt-63) and the Buyer tax identifier (ibt-48).
context
/ubl:Invoice |
/cn:CreditNote
test
(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID) =
    'K'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) and
  (exists(//cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID) or
    exists(//cac:TaxRepresentativeParty/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID)) and
  (exists(//cac:AccountingCustomerParty/cac:Party/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID))) or
not(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID) =
    'K'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
  )
)
aligned-ibrp-ic-06(fatal)
Obsoleted
[aligned-ibrp-ic-06]-In a Document level allowance (ibg-20) where the Document level allowance tax category code (ibt-95) is "Intra-community supply" the Document level allowance tax rate (ibt-96) MUST be 0 (zero).
context
cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='K'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
(
  xs:decimal(cbc:Percent) =
  0
)
aligned-ibrp-o-01(fatal)
Obsoleted
[aligned-ibrp-o-01]-An Invoice that contains an Invoice line (ibg-25), a Document level allowance (ibg-20) or a Document level charge (ibg-21) where the tax category code (ibt-151, ibt-95 or ibt-102) is "Not subject to tax" MUST contain exactly one tax breakdown group (ibg-23) with the tax category code (ibt-118) equal to "Not subject to tax".
context
/ubl:Invoice |
/cn:CreditNote
test
(
  (exists(//cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'O']) or
    exists(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'O'])) and
  (count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'O']) =
    1)) or
(
  not(
    //cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'O']) and
  not(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'O']
  )
)
aligned-ibrp-o-03(fatal)
Obsoleted
[aligned-ibrp-o-03]-An Invoice that contains a Document level allowance (ibg-20) where the Document level allowance tax category code (ibt-95) is "Not subject to tax" MUST not contain the Seller tax identifier (ibt-31), the Seller tax representative tax identifier (ibt-63) or the Buyer tax identifier (ibt-48).
context
/ubl:Invoice |
/cn:CreditNote
test
(exists((/ubl:Invoice|/cn:CreditNote)/cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID) =
    'O'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) and
  (
    not(
      //cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID) and
    not(//cac:TaxRepresentativeParty/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID) and
    not(//cac:AccountingCustomerParty/cac:Party/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID))) or
not(exists((/ubl:Invoice|/cn:CreditNote)/cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID) =
    'O'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
  )
)
aligned-ibrp-o-06(fatal)
Obsoleted
[aligned-ibrp-o-06]-A Document level allowance (ibg-20) where tax category code (ibt-95) is "Not subject to tax" MUST not contain a Document level allowance tax rate (ibt-96).
context
cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='O'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
not(cbc:Percent)
aligned-ibrp-o-13(fatal)
Obsoleted
[aligned-ibrp-o-13]-An Invoice that contains a tax breakdown group (ibg-23) with a tax category code (ibt-118) "Not subject to tax" MUST not contain Document level allowances (ibg-20) where Document level allowance tax category code (ibt-95) is not "Not subject to tax".
context
/ubl:Invoice |
/cn:CreditNote
test
(exists(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'O']) and
  count(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID) != 'O'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) =
  0) or
not(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
  'O']
)
aligned-ibrp-s-01(fatal)
Obsoleted
[aligned-ibrp-s-01]-An Invoice that contains an Invoice line (ibg-25), a Document level allowance (ibg-20) or a Document level charge (ibg-21) where the tax category code (ibt-151, ibt-95 or ibt-102) is "Standard rated" MUST contain in the tax breakdown (ibg-23) at least one tax category code (ibt-118) equal with "Standard rated".
context
/ubl:Invoice |
/cn:CreditNote
test
(
  (count(//cac:AllowanceCharge/cac:TaxCategory[normalize-space(cbc:ID) =
      'S']) +
    count(//cac:ClassifiedTaxCategory[normalize-space(cbc:ID) =
      'S'])) > 0 and
  count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) =
    'S']) > 0) or
(
  (count(//cac:AllowanceCharge/cac:TaxCategory[normalize-space(cbc:ID) =
      'S']) +
    count(//cac:ClassifiedTaxCategory[normalize-space(cbc:ID) =
      'S'])) =
  0 and
  count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) =
    'S']) =
  0
)
aligned-ibrp-s-03(fatal)
Obsoleted
[aligned-ibrp-s-03]-An Invoice that contains a Document level allowance (ibg-20) where the Document level allowance tax category code (ibt-95) is "Standard rated" MUST contain the Seller tax Identifier (ibt-31), the Seller tax registration identifier (ibt-32) and/or the Seller tax representative tax identifier (ibt-63).
context
/ubl:Invoice |
/cn:CreditNote
test
(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='S'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) and
  (exists(//cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID) or
    exists(//cac:TaxRepresentativeParty/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID))) or
not(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='S'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']))
aligned-ibrp-s-06(fatal)
Obsoleted
[aligned-ibrp-s-06]-In a Document level allowance (ibg-20) where the Document level allowance tax category code (ibt-95) is "Standard rated" the Document level allowance tax rate (ibt-96) MUST be greater than zero.
context
cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='S'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
(
  xs:decimal(cbc:Percent) > 0
)
aligned-ibrp-z-01(fatal)
Obsoleted
[aligned-ibrp-z-01]-An Invoice that contains an Invoice line (ibg-25), a Document level allowance (ibg-20) or a Document level charge (ibg-21) where the tax category code (ibt-151, ibt-95 or ibt-102) is "Zero rated" MUST contain in the tax breakdown (ibg-23) exactly one tax category code (ibt-118) equal with "Zero rated".
context
/ubl:Invoice |
/cn:CreditNote
test
(
  (count(//cac:AllowanceCharge/cac:TaxCategory[normalize-space(cbc:ID) =
      'Z']) +
    count(//cac:ClassifiedTaxCategory[normalize-space(cbc:ID) =
      'Z'])) > 0 and
  count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) =
    'Z']) > 0) or
(
  (count(//cac:AllowanceCharge/cac:TaxCategory[normalize-space(cbc:ID) =
      'Z']) +
    count(//cac:ClassifiedTaxCategory[normalize-space(cbc:ID) =
      'Z'])) =
  0 and
  count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) =
    'Z']) =
  0
)
aligned-ibrp-z-03(fatal)
Obsoleted
[aligned-ibrp-z-03]-An Invoice that contains a Document level allowance (ibg-20) where the Document level allowance tax category code (ibt-95) is "Zero rated" MUST contain the Seller tax Identifier (ibt-31), the Seller tax registration identifier (ibt-32) and/or the Seller tax representative tax identifier (ibt-63).
context
/ubl:Invoice |
/cn:CreditNote
test
(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='Z'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) and
  (exists(//cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID) or
    exists(//cac:TaxRepresentativeParty/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID))) or
not(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='Z'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']))
aligned-ibrp-z-06(fatal)
Obsoleted
[aligned-ibrp-z-06]-In a Document level allowance (ibg-20) where the Document level allowance tax category code (ibt-95) is "Zero rated" the Document level allowance tax rate (ibt-96) MUST be 0 (zero).
context
cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='Z'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
(
  xs:decimal(cbc:Percent) =
  0
)
JP PINT 0.9.2 Shared rules
ibr-031(fatal)
Still valid
[ibr-031]-Each Document level allowance (ibg-20) MUST have a Document level allowance amount (ibt-092).
context
//cac:AllowanceCharge[cbc:ChargeIndicator = false()]
test
exists(cbc:Amount)
ibr-033(fatal)
Still valid
[ibr-033]-Each Document level allowance (ibg-20) MUST have a Document level allowance reason (ibt-097) or a Document level allowance reason code (ibt-098).
context
/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = false()] |
/cn:CreditNote/cac:AllowanceCharge[cbc:ChargeIndicator = false()]
test
exists(cbc:AllowanceChargeReason) or
exists(cbc:AllowanceChargeReasonCode)

VERSION 0.9.1 RULES
Obsoleted
Aligned rules (0.9.1)
aligned-ibrp-032-jp (fatal)
[aligned-ibrp-032jp]-Each Document level allowance (ibg-20) MUST have a Document level allowance tax category code (ibt-095) and Document level allowance tax rate (ibt-096)..
context
/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = false()] |
/cn:CreditNote/cac:AllowanceCharge[cbc:ChargeIndicator = false()]
test
exists(cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID) and
exists(cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:Percent)
aligned-ibrp-e-01 (fatal)
[aligned-ibrp-e-01]-An Invoice that contains an Invoice line (ibg-25), a Document level allowance (ibg-20) or a Document level charge (ibg-21) where the tax category code (ibt-151, ibt-95 or ibt-102) is "Exempt from tax" MUST contain exactly one tax breakdown (ibg-23) with the tax category code (ibt-118) equal to "Exempt from tax".
context
/ubl:Invoice |
/cn:CreditNote
test
(
  (exists(//cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'E']) or
    exists(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'E'])) and
  (count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'E']) =
    1)) or
(
  not(
    //cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'E']) and
  not(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'E']
  )
)
aligned-ibrp-e-06 (fatal)
[aligned-ibrp-e-06]-In a Document level allowance (ibg-20) where the Document level allowance tax category code (ibt-95) is "Exempt from tax", the Document level allowance tax rate (ibt-96) MUST be 0 (zero).
context
cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='E'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
(cbc:Percent =
  0
)
aligned-ibrp-g-01 (fatal)
[aligned-ibrp-g-01]-An Invoice that contains an Invoice line (ibg-25), a Document level allowance (ibg-20) or a Document level charge (ibg-21) where the tax category code (ibt-151, ibt-95 or ibt-102) is "Export" MUST contain in the tax breakdown (ibg-23) exactly one tax category code (ibt-118) equal with "Export".
context
/ubl:Invoice |
/cn:CreditNote
test
(
  (exists(//cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'G']) or
    exists(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'G'])) and
  (count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'G']) =
    1)) or
(
  not(
    //cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'G']) and
  not(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'G']
  )
)
aligned-ibrp-g-06 (fatal)
[aligned-ibrp-g-06]-In a Document level allowance (ibg-20) where the Document level allowance tax category code (ibt-95) is "Export" the Document level allowance tax rate (ibt-96) MUST be 0 (zero).
context
cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='G'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
(cbc:Percent =
  0
)
aligned-ibrp-o-01 (fatal)
[aligned-ibrp-o-01]-An Invoice that contains an Invoice line (ibg-25), a Document level allowance (ibg-20) or a Document level charge (ibg-21) where the tax category code (ibt-151, ibt-95 or ibt-102) is "Not subject to tax" MUST contain exactly one tax breakdown group (ibg-23) with the tax category code (ibt-118) equal to "Not subject to tax".
context
/ubl:Invoice |
/cn:CreditNote
test
(
  (exists(//cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'O']) or
    exists(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'O'])) and
  (count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'O']) =
    1)) or
(
  not(
    //cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'O']) and
  not(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'O']
  )
)
aligned-ibrp-o-06 (fatal)
[aligned-ibrp-o-06]-A Document level allowance (ibg-20) where tax category code (ibt-95) is "Not subject to tax" MUST not contain a Document level allowance tax rate (ibt-96).
context
cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='O'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
not(cbc:Percent)
Shared rules (0.9.1)
ibr-031 (fatal)
[ibr-031]-Each Document level allowance (ibg-20) MUST have a Document level allowance amount (ibt-092).
context
/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = false()] |
/cn:CreditNote/cac:AllowanceCharge[cbc:ChargeIndicator = false()]
test
exists(cbc:Amount)
ibr-033 (fatal)
[ibr-033]-Each Document level allowance (ibg-20) MUST have a Document level allowance reason (ibt-097) or a Document level allowance reason code (ibt-098).
context
/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = false()] |
/cn:CreditNote/cac:AllowanceCharge[cbc:ChargeIndicator = false()]
test
exists(cbc:AllowanceChargeReason) or
exists(cbc:AllowanceChargeReasonCode)

JP PINT 0.9 RULES
Obsoleted
Aligned Rules (0.9)
jp-br-32(fatal)
[jp-br-32]-Each Document level allowance (ibg-20) shall be categorized by Document level allowance tax category code(ibt-095)and Document level allowance tax rate(ibt-096).
context
/cac:AllowanceCharge[cbc:ChargeIndicator=true()]
test
exists(cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID) and
exists(cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:Percent)
Shared Rules (0.9)
ibr-31(fatal)
[ibr-31]-Each Document level allowance (ibg-20) shall have a Document level allowance amount (ibt-092).
context
/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = false()] | /cn:CreditNote/cac:AllowanceCharge[cbc:ChargeIndicator = false()]
test
exists(cbc:Amount)

PEPPOL BIS BILLING 3.0 RULES
EN16931 model bound to UBL rules
BR-31 (fatal)
Each Document level allowance (BG-20) shall have a Document level allowance amount (BT-92).
context
/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = false()] |
/cn:CreditNote/cac:AllowanceCharge[cbc:ChargeIndicator = false()]
test
exists(cbc:Amount)
BR-32 (fatal)
Each Document level allowance (BG-20) shall have a Document level allowance VAT category code (BT-95).
context
/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = false()] |
/cn:CreditNote/cac:AllowanceCharge[cbc:ChargeIndicator = false()]
test
exists(cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID)
BR-33 (fatal)
Each Document level allowance (BG-20) shall have a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98).
context
/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = false()] |
/cn:CreditNote/cac:AllowanceCharge[cbc:ChargeIndicator = false()]
test
exists(cbc:AllowanceChargeReason) or
exists(cbc:AllowanceChargeReasonCode)
BR-AE-01 (fatal)
An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Reverse charge" shall contain in the VAT Breakdown (BG-23) exactly one VAT category code (BT-118) equal with "VAT reverse charge".
context
/ubl:Invoice |
/cn:CreditNote
test
(
  (exists(//cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'AE']) or
    exists(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'AE'])) and
  (count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'AE']) =
    1)) or
(
  not(
    //cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'AE']) and
  not(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'AE']
  )
)
BR-AE-03 (fatal)
An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Reverse charge" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration Identifier (BT-32) and/or the Seller tax representative VAT Identifier (BT-63) and the Buyer VAT Identifier (BT-48) and/or the Buyer legal registration Identifier (BT-47).
context
/ubl:Invoice |
/cn:CreditNote
test
(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID) =
    'AE'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) and
  (exists(//cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID) or
    exists(//cac:TaxRepresentativeParty/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID)) and
  (exists(//cac:AccountingCustomerParty/cac:Party/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID) or
    exists(//cac:AccountingCustomerParty/cac:Party/cac:PartyLegalEntity/cbc:CompanyID))) or
not(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID) =
    'AE'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
  )
)
BR-AE-06 (fatal)
In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Reverse charge" the Document level allowance VAT rate (BT-96) shall be 0 (zero).
context
cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='AE'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
(
  xs:decimal(cbc:Percent) =
  0
)
BR-B-02 (fatal)
An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is “Split payment" shall not contain an invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is “Standard rated”.
context
/ubl:Invoice |
/cn:CreditNote
test
(
  (//cac:TaxCategory/cbc:ID ='B' or
    //cac:ClassifiedTaxCategory/cbc:ID =
    'B') and
  (
    not(
      //cac:TaxCategory/cbc:ID ='S' or
      //cac:ClassifiedTaxCategory/cbc:ID =
      'S'))) or
(
  not(
    //cac:TaxCategory/cbc:ID ='B' or
    //cac:ClassifiedTaxCategory/cbc:ID =
    'B'
  )
)
BR-CO-21 (fatal)
Each Document level allowance (BG-20) shall contain a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98), or both.
context
/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = false()] |
/cn:CreditNote/cac:AllowanceCharge[cbc:ChargeIndicator = false()]
test
exists(cbc:AllowanceChargeReason) or
exists(cbc:AllowanceChargeReasonCode)
BR-E-01 (fatal)
An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Exempt from VAT" shall contain exactly one VAT breakdown (BG-23) with the VAT category code (BT-118) equal to "Exempt from VAT".
context
/ubl:Invoice |
/cn:CreditNote
test
(
  (exists(//cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'E']) or
    exists(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'E'])) and
  (count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'E']) =
    1)) or
(
  not(
    //cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'E']) and
  not(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'E']
  )
)
BR-E-03 (fatal)
An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Exempt from VAT" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration Identifier (BT-32) and/or the Seller tax representative VAT Identifier (BT-63).
context
/ubl:Invoice |
/cn:CreditNote
test
(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='E'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) and
  (exists(//cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID) or
    exists(//cac:TaxRepresentativeParty/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID))) or
not(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='E'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']))
BR-E-06 (fatal)
In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Exempt from VAT", the Document level allowance VAT rate (BT-96) shall be 0 (zero).
context
cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='E'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
(
  xs:decimal(cbc:Percent) =
  0
)
BR-G-01 (fatal)
An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Export outside the EU" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with "Export outside the EU".
context
/ubl:Invoice |
/cn:CreditNote
test
(
  (exists(//cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'G']) or
    exists(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'G'])) and
  (count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'G']) =
    1)) or
(
  not(
    //cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'G']) and
  not(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'G']
  )
)
BR-G-03 (fatal)
An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Export outside the EU" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT Identifier (BT-63).
context
/ubl:Invoice |
/cn:CreditNote
test
(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='G']) and
  (exists(//cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID) or
    exists(//cac:TaxRepresentativeParty/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID))) or
not(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='G'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']))
BR-G-06 (fatal)
In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Export outside the EU" the Document level allowance VAT rate (BT-96) shall be 0 (zero).
context
cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='G'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
(
  xs:decimal(cbc:Percent) =
  0
)
BR-IC-01 (fatal)
An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Intra-community supply" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with "Intra-community supply".
context
/ubl:Invoice |
/cn:CreditNote
test
(
  (exists(//cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'K']) or
    exists(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'K'])) and
  (count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'K']) =
    1)) or
(
  not(
    //cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'K']) and
  not(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'K']
  )
)
BR-IC-03 (fatal)
An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Intra-community supply" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT Identifier (BT-63) and the Buyer VAT Identifier (BT-48).
context
/ubl:Invoice |
/cn:CreditNote
test
(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID) =
    'K'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) and
  (exists(//cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID) or
    exists(//cac:TaxRepresentativeParty/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID)) and
  (exists(//cac:AccountingCustomerParty/cac:Party/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID))) or
not(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID) =
    'K'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
  )
)
BR-IC-06 (fatal)
In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Intra-community supply" the Document level allowance VAT rate (BT-96) shall be 0 (zero).
context
cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='K'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
(
  xs:decimal(cbc:Percent) =
  0
)
BR-IG-01 (fatal)
An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "IGIC" shall contain in the VAT breakdown (BG-23) at least one VAT category code (BT-118) equal with "IGIC".
context
/ubl:Invoice |
/cn:CreditNote
test
(
  (count(//cac:AllowanceCharge/cac:TaxCategory[normalize-space(cbc:ID) =
      'L'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) +
    count(//cac:ClassifiedTaxCategory[normalize-space(cbc:ID) =
      'L'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'])) > 0 and
  count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cbc:ID =
    'L']) > 0) or
(
  (count(//cac:AllowanceCharge/cac:TaxCategory[normalize-space(cbc:ID) =
      'L'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) +
    count(//cac:ClassifiedTaxCategory[normalize-space(cbc:ID) =
      'L'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'])) =
  0 and
  count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) =
    'L'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) =
  0
)
BR-IG-03 (fatal)
An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IGIC" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration Identifier (BT-32) and/or the Seller tax representative VAT Identifier (BT-63).
context
/ubl:Invoice |
/cn:CreditNote
test
(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='L'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) and
  (exists(//cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID) or
    exists(//cac:TaxRepresentativeParty/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID))) or
not(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='L'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']))
BR-IG-06 (fatal)
In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IGIC" the Document level allowance VAT rate (BT-96) shall be 0 (zero) or greater than zero.
context
cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='L'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
(cbc:Percent) >= 0
BR-IP-01 (fatal)
An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "IPSI" shall contain in the VAT breakdown (BG-23) at least one VAT category code (BT-118) equal with "IPSI".
context
/ubl:Invoice |
/cn:CreditNote
test
(
  (count(//cac:AllowanceCharge/cac:TaxCategory[normalize-space(cbc:ID) =
      'M'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) +
    count(//cac:ClassifiedTaxCategory[normalize-space(cbc:ID) =
      'M'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'])) > 0 and
  count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cbc:ID =
    'M'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) > 0) or
(
  (count(//cac:AllowanceCharge/cac:TaxCategory[normalize-space(cbc:ID) =
      'M'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) +
    count(//cac:ClassifiedTaxCategory[normalize-space(cbc:ID) =
      'M'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'])) =
  0 and
  count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) =
    'M'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) =
  0
)
BR-IP-03 (fatal)
An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IPSI" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration Identifier (BT-32) and/or the Seller tax representative VAT Identifier (BT-63).
context
/ubl:Invoice |
/cn:CreditNote
test
(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='M'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) and
  (exists(//cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID) or
    exists(//cac:TaxRepresentativeParty/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID))) or
not(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='M'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']))
BR-IP-06 (fatal)
In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IPSI" the Document level allowance VAT rate (BT-96) shall be 0 (zero) or greater than zero.
context
cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='M'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
(cbc:Percent) >= 0
BR-O-01 (fatal)
An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Not subject to VAT" shall contain exactly one VAT breakdown group (BG-23) with the VAT category code (BT-118) equal to "Not subject to VAT".
context
/ubl:Invoice |
/cn:CreditNote
test
(
  (exists(//cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'O']) or
    exists(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'O'])) and
  (count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'O']) =
    1)) or
(
  not(
    //cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'O']) and
  not(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'O']
  )
)
BR-O-03 (fatal)
An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Not subject to VAT" shall not contain the Seller VAT Identifier (BT-31), the Seller tax representative VAT Identifier (BT-63) or the Buyer VAT Identifier (BT-48).
context
/ubl:Invoice |
/cn:CreditNote
test
(exists((/ubl:Invoice|/cn:CreditNote)/cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID) =
    'O'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) and
  (
    not(
      //cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID) and
    not(//cac:TaxRepresentativeParty/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID) and
    not(//cac:AccountingCustomerParty/cac:Party/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID))) or
not(exists((/ubl:Invoice|/cn:CreditNote)/cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID) =
    'O'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
  )
)
BR-O-06 (fatal)
A Document level allowance (BG-20) where VAT category code (BT-95) is "Not subject to VAT" shall not contain a Document level allowance VAT rate (BT-96).
context
cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='O'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
not(cbc:Percent)
BR-O-13 (fatal)
An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118) "Not subject to VAT" shall not contain Document level allowances (BG-20) where Document level allowance VAT category code (BT-95) is not "Not subject to VAT".
context
/ubl:Invoice |
/cn:CreditNote
test
(exists(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'O']) and
  count(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID) != 'O'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) =
  0) or
not(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
  'O']
)
BR-S-01 (fatal)
An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Standard rated" shall contain in the VAT breakdown (BG-23) at least one VAT category code (BT-118) equal with "Standard rated".
context
/ubl:Invoice |
/cn:CreditNote
test
(
  (count(//cac:AllowanceCharge/cac:TaxCategory[normalize-space(cbc:ID) =
      'S']) +
    count(//cac:ClassifiedTaxCategory[normalize-space(cbc:ID) =
      'S'])) > 0 and
  count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) =
    'S']) > 0) or
(
  (count(//cac:AllowanceCharge/cac:TaxCategory[normalize-space(cbc:ID) =
      'S']) +
    count(//cac:ClassifiedTaxCategory[normalize-space(cbc:ID) =
      'S'])) =
  0 and
  count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) =
    'S']) =
  0
)
BR-S-03 (fatal)
An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Standard rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration Identifier (BT-32) and/or the Seller tax representative VAT Identifier (BT-63).
context
/ubl:Invoice |
/cn:CreditNote
test
(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='S'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) and
  (exists(//cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID) or
    exists(//cac:TaxRepresentativeParty/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID))) or
not(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='S'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']))
BR-S-06 (fatal)
In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Standard rated" the Document level allowance VAT rate (BT-96) shall be greater than zero.
context
cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='S'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
(cbc:Percent) > 0
BR-Z-01 (fatal)
An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Zero rated" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with "Zero rated".
context
/ubl:Invoice |
/cn:CreditNote
test
(
  (exists(//cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'Z']) or
    exists(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'Z'])) and
  (count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
      'Z']) =
    1)) or
(
  not(
    //cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'Z']) and
  not(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) =
    'Z']
  )
)
BR-Z-03 (fatal)
An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Zero rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration Identifier (BT-32) and/or the Seller tax representative VAT Identifier (BT-63).
context
/ubl:Invoice |
/cn:CreditNote
test
(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='Z'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) and
  (exists(//cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID) or
    exists(//cac:TaxRepresentativeParty/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) =
        'VAT')]/cbc:CompanyID))) or
not(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID) =
    'Z'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
  )
)
BR-Z-06 (fatal)
In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Zero rated" the Document level allowance VAT rate (BT-96) shall be 0 (zero).
context
cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='Z'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
(
  xs:decimal(cbc:Percent) =
  0
)